
# 序列的通用操作
"""
主要包括 ： 索引，切片，相加，相乘 ，包含 ，其中字典没有切片，相加，相乘
"""

# 1. 索引 ：元素的下标 ，可以从左往右数 ，也可以从右往左数
lst = ['a',1,12.4,'ddd']
tp = ('a',1,12.4,'ddd')
my_str = "abcdefg"
print("获取列表中第2个元素:",lst[1])
print("获取元组中第2个元素:",tp[1])
print("获取字符串中第2个元素:",my_str[1])
print("获取列表中第2个元素:",lst[-3])
print("获取元组中第2个元素:",tp[-3])
print("获取字符串中第2个元素:",my_str[-6])

# 2. 切片 ：
"""
seq[start:end:step]
    seq : 代表序列
    start ：开始索引位置 ，默认从0开始
    end : 代表结束索引位置，不包括结束位置 ，默认序列的长度
    step : 步长，默认是1
"""
lst1 = ['red','green','blue','black','gold','orange']
print("获取第2~第5个元素:",lst1[1:5:1])
print("获取偶数的元素:",lst1[1:6:2])

print("获取第2~第5个元素:",lst1[1:5:])     # 省略了step
print("获取第1~第5个元素:",lst1[0:5:])     # 省略了step
print("获取第1~第5个元素:",lst1[:5:])     # 省略了start和step
print("获取整个列表的元素:",lst1[0:6:1])
print("获取整个列表的元素:",lst1[::])    # 省略了start，end,step
print(":",lst1[2::])
print("="*30)
print(":",lst1[0:-2:])
print("="*30)
print(":",lst1[::3])
print("获取整个列表的元素:",lst1[-6:-2:1])

print("=====================")
print("="*30)
# 3.相加: + ，相乘: *
alst = [1,2]
blst = [3,4]
clst = alst + blst
print(clst)

astr = "hello"
bstr = "python"
print(astr+bstr)
print(astr,bstr)

dlst = alst * 3
print(dlst)

print(astr * 3)


# 4. 检查元素 ： in
tp2 = ('red','green','blue','black','gold','orange')
print('black' in tp2)
print('1sblack' in tp2)

print("="*50)
# 支持的方法
"""
1. len(seq)     : 查看序列的长度
2. max(seq)     : 查找序列中的最大值 ,同种数据类型的比较
3. min(seq)     : 查找序列中的最小值 ,同种数据类型的比较
4. sum(seq)     : 对序列中的元素求和，前提序列必须是数字
5. sorted(seq)  : 对序列进行排序
6. reversed(seq): 对序列进行翻转
7. enumerate(seq) : 可以获取索引和值
8. list(seq)        : 创建或转化为列表
9. str(seq)         : 创建或转化为字符串
10 . tuple(seq)     : 创建或转化为元组
11. dict(seq)       : 创建或转化为字典
"""
tp3 = ('red','green','blue','black','gold','orange')
tp4 = (1,2,3,4)
print("查看tp3的长度:",len(tp3))

print("查看tp3的最大值:",max(tp3))
print("查看tp3的最小值:",min(tp3))
print("对tp4求和:",sum(tp4))

print("对tp3进行排序:",sorted(tp3))
print("对tp3进行翻转:",reversed(tp3))
for x in reversed(tp3):
    print(x,end=" ")
print()

for index,value in enumerate(tp3):
    print("索引:",index,'====',"值:",value)

print("="*50)
lst2 = list()
print(lst2)

my_str1 = "hello world"
dct1 = {'a':1,'b':2}
print("将元组转化为列表:",list(tp4))
print("将字符串转化为列表:",list(my_str1))
print("将字典转化为列表:",list(dct1))

print("="*50)
print("查看数据类型:",type(str(alst)))
print("将alst转化为字符串:",str(alst))         # '[1,2]'
print("将tp4转化为字符串:",str(tp4))
print("将dct1转化为字符串:",str(dct1))
